package com.librelato.negocio.interfaces;

import java.util.List;
import java.util.Map;

import com.librelato.bean.ChamadoBean;
import com.librelato.bean.UsuarioBean;

public interface IChamadoServico<P extends ChamadoBean> extends
		IServicoGenerico<P> {
	
	public List<P> buscaChamadosAberto(Map<String, String> param, UsuarioBean p) throws Exception;
	
	public List<P> buscaChamadosNaoAprovados(Map<String, Object> param,UsuarioBean p) throws Exception;
	
	public List<P> buscaChamadosFinalizado(Map<String, String> param, UsuarioBean p) throws Exception;
	
	public List<P> buscaChamadosAtendidos(Map<String, Object> param, UsuarioBean p) throws Exception;
	
	public List<P> buscaChamadosIniciar(Map<String, Object> param,UsuarioBean p) throws Exception;
	
	public void insereQualificacao(P p) throws Exception;
	
	public void insereQualificacaoInsatisfeito(P p) throws Exception;
	
	public void aprovaChamado(P p) throws Exception;
	
	public void trocaDestinoChamado(P p) throws Exception;
	
	public void negaChamado(P p) throws Exception;
	
	public void iniciaChamado(P p) throws Exception;
	
	public void informaAndamento(P p) throws Exception;
	
	public List<Long> estatisticaChamadoUsuario(UsuarioBean p) throws Exception;
	
	public List<List<String>> estatisticaTI(UsuarioBean p) throws Exception;
	
	public List<List<String>> estatisticaAssunto(UsuarioBean p) throws Exception;
	
	public Map<String,Map<String,Long>> buscaTotalPorStatus(java.sql.Date dataDe,
			java.sql.Date dataAte,String queryParam) throws Exception;
	
	public Map<String,Map<String,Long>> buscaTotalNotaMes(java.sql.Date dataDe,
			java.sql.Date dataAte) throws Exception;
	
	public List<ChamadoBean> buscaChamadosNaoQualificados(
			Map<String, String> param) throws Exception;
	
}
